import {queryDic} from "@/api/common";

let dic = {};
function setDic(d) {
  dic = d;
}
function getDic(name) {
  return dic[name];
}

function getDicCn(name){
  if(!dic[name]){
    queryDic().then(res=>{
      const {code,result}=res;
      if(code===200){
        setDic(result);
      }
    });
  }
  return dic[name]?.map(item=>{
    return item.dictNameCn
  })
}

function translate(name,value){
  let text=`字典翻译失败：${value}`;
  if(value==='-'){
    return value;
  }else if(!value){
    return ""
  }
  if(!dic[name]){
    queryDic().then(res=>{
      const {code,result}=res;
      if(code===200){
        setDic(result);
      }
    });
  }
  dic[name]?.some(item =>{
    if(item.dictCode===value){
      text=item.dictNameCn||item.dictName;
      return true;
    }
    return false;
  });
  return text;
}

function parseCode(name,value){
  let text=`字典解析代码失败：${value}`;
  if(value===''){
    return value;
  }
  if(!dic[name]){
    queryDic().then(res=>{
      const {code,result}=res;
      if(code===200){
        setDic(result);
      }
    });
  }
  dic[name]?.some(item =>{
    if(item.dictNameCn===value){
      text=item.dictCode;
      return true;
    }
    return false;
  });
  return text;
}

export {
  parseCode,
  getDicCn,
  translate,
  setDic,
  getDic,
}
